package com.browsesoft.htmlcomponent;

import java.util.Iterator;
import java.util.LinkedList;

import org.w3c.dom.Element;

import com.browsesoft.ExtendElement;

/**
 * 根据模板中的标记，对于不可写的数据，取消录入筐
 */
public class DisplayFormComponent extends HTMLFormComponent {
	private static final long serialVersionUID = 1L;

	/**
	 * 使用父组件构造
	 */
	public DisplayFormComponent(HTMLBasicComponent parent) throws Exception {
		super(parent);
	}

	/**
	 * 根据元素的类型，设置元素的值
	 */
	protected void setFieldValue(Element dealElement) throws Exception {
		// 调用父组件地方法，把值写入输入筐
		super.setFieldValue(dealElement);
		// 对每一个writable="false"的元素
		LinkedList list = ExtendElement.findElements(this.getElement(),
				"writable", "false");
		Iterator iter = list.iterator();
		while (iter.hasNext()) {
			Element item = (Element) iter.next();
			// 取得元素内容
			String name = item.getAttribute("name");
			String value = (String) ((HTMLFormModel) this.model)
					.getAttributes().get(name);
			// 是空
			if (value == null || value.trim().equals("")) {
				value = "??";
			}
			// 替换该元素为内容文本
			item.getParentNode().replaceChild(
					this.getPage().getDocument().createTextNode(value), item);
		}
	}
}